package com.onepiece.shipelves.common.sort;

import org.springframework.util.StringUtils;

/**
 *
 * @author guoyanjiang
 * @date 2019-01-17
 */
public interface BasePageReq {

    /**
     * 请求页数
     * @return
     */
    Integer getPage();

    /**
     * 请求条目数
     * @return
     */
    Integer getCount();

    /**
     * 排序字段名称
     * @return
     */
    String getOrderField();

    /**
     * 排序类型
     * @return
     */
    String getOrderType();

//    Map<String, FilterReq> getFilter();

    default boolean needOrderOrPaging() {
        return needOrder() || needPaging();
    }

    default boolean needOrder() {
        return !StringUtils.isEmpty(getOrderField());
    }

    default boolean needPaging() {
        return getPage() != null && getPage() != 0 && getCount() != null && getCount() != 0;
    }

//    default boolean needFilter() {
//        return getFilter() != null && !getFilter().isEmpty() && getFilter().size() > 0;
//    }

    default Integer checkAndGetDefaultPage(){
        if (getPage() == null || getPage() == 0) {
            return 1;
        } else {
            return getPage();
        }
    }

    default Integer checkAndGetDefaultPageSize(){
        if (getCount() == null || getCount() == 0) {
            return 30;
        } else {
            return getCount();
        }
    }
}
